Printed circuit boards (PCBs) are commonly used in electronics to connect electrical/electronic components such as integrated circuits and connectors to one another (referred to herein as components). A typical PCB includes many layers of copper, with each layer of copper separated by a dielectric material. Generally, several of the copper layers are etched to form connection lines (e.g., “traces”). Copper-lined through holes (e.g., “vias”) extend though the layers of the PCB to provide connection paths between the layers of the PCB. Commonly, connection pads surround the vias on each layer through which the vias pass to facilitate electrical connection with the vias. If a via is unused on a particular layer, is the pad may be removed, leaving a hole.
Components are typically connected to a PCB using connection pins or a ball grid array (BGA), for example. Such pins of a pin array or balls of a ball grid array act as conductors for the transmission of signals between the components and the PCB. For such components, the PCB has a plurality of vias, pads, or other form of mating conductors corresponding to each conductor of a component. To form a secure electrical connection between a component and vias on a PCB, the conductors of the component are mated with the corresponding conductors on the PCB and soldered. For components with a BGAs, the PCB has a plurality of vias corresponding to each conductor to which the BGA is directly connected or is connected through a pad and a short copper trace on a surface layer of the PCB. To form a secure electrical connection between the component and the PCB, the BGA is soldered to the via or the pad, depending on the configuration.
Connections between components are referred to as “nets.” Nets represent the signal path between components and are used to define where the copper traces are positioned within the PCB. Routing nets between components is sometimes challenging because the vias, pads, or other conductors formed on the PCB represent obstacles between which the nets may need to travel. Also, positioning nets too close to one another can give rise to cross-talk. Additionally, some nets may need to be lengthened to optimize performance. The foregoing challenges are more pronounced when dealing with one or more densely populated fields of obstacles such as those associated with connectors, ASICs, and other components. In such densely populated fields, the obstacles may be formed in a patterned grid having closely arranged rows of obstacles.
Accordingly, there is a need for improved methods for routing nets through densely populated obstacle fields. The present invention fulfils this need among others.